The present disclosure relates generally to error correcting codes and more specifically, to a combination of product codes and integrated interleaved codes with applications to tape and parallel channels.
Reliable delivery of data is essential in computer systems. To this end, such computer systems utilize error detection and correction schemes to detect errors in data delivery and reconstruct such data when an error is detected. This is especially important when such delivery of data is provided over unreliable communication channels or channels that are subject to interruptions, such as those exposed to channel noise. Data redundancy schemes such as parity computation enable reliable delivery of digital data using error correction and detection techniques. Most error detection and correction schemes utilize redundancy or add extra data to a message, which receivers can then use to check consistency of the delivered message. This also allows for recovery of data determined to be corrupted.
Systems like tape or, more generally systems involving transmission of data across simultaneous parallel channels, often rely on product codes to achieve this goal of reliable transmission of data. A product code is a technique to form a long length code with higher error-correcting code capabilities using smaller length constituent codes.
Whether used in data delivery or to guard against loss of data, error detecting and correcting codes use parity bits for establishing redundancy. Extensions and variations on the parity bit mechanisms for more sophisticated and larger data arrays are provided through horizontal and vertical redundancy checks or code. A horizontal redundancy check is applied independently to each of a parallel group of bit streams. The data must be divided into transmission blocks to which the additional check data are added. By contrast, a vertical redundancy check is used for synchronized parallel bits and is applied once per bit time, across the bit streams, necessitating one or more additional parallel channels for the check bit or bits.
The codewords of the disclosed coding scheme can be viewed as 2-dimensional arrays. In applications to tape and parallel channels, rows of these 2-dimensional arrays are mapped onto different tracks and channels, which exhibit large variations in error rate. Therefore, there is a need for array codes that have the capability of correcting different number of errors in the rows.